// 为什么两个都可以向外部暴露数据？

// 1、模块向外部暴露的是：module.exports



// 假如这个是js私有化的隐藏函数
function  fun(){

    // 暴露的方式1：
    // module.exports=Trim

    // 暴露的方式2：
    // module.exports={
    //     str,
    //     num,
    //     arr
    // }

    // 暴露的方式3：
    // exports.str=str
    // exports.num=num




    // module.exports和exports之间的联系：-------------------
    // nodejs模块化悄悄的做了一个事情：浅拷贝（两者共用一个内存地址，互相影响）
    // let  exports=module.exports

    // 那么，我们就可以使用exports来收集数据，数据最终也会被添加module.exports
    // 我们使用exports，是因为exports可以应用在一个模块的任意的地方，而module.exports只能用在模块的最后

    // exports是module.exports的一个工具（收集数据的）




    // module.exports和exports之间的不同点：-------------------
    // exports是module.exports的一个工具
    // 向外界暴露的是module.exports
    // exports收集的数据能够被暴露出去，是因为两者之间有浅拷贝的关系
    // 所以，如果这种关系被断开了，那么 exports就失效了





    return  module.exports
}

console.log(fun());